package cn.tedu.erp.project.service;

import cn.tedu.erp.project.pojo.dto.AdminAddNewDTO;
import cn.tedu.erp.project.pojo.dto.AdminLoginDTO;
import cn.tedu.erp.project.pojo.dto.AdminUpdateDTO;
import cn.tedu.erp.project.pojo.vo.AdminListVO;
import cn.tedu.erp.project.pojo.vo.AdminStandardVO;
import org.springframework.transaction.annotation.Transactional;

import java.util.List;

@Transactional
public interface IAdminService {
    String ENABLE_TEXT[] = {"用户禁用", "用户启用"};
    String MANAGER_TEXT[] = {"部门经理禁用", "部门经理启用"};

    /**
     * 用户登录
     * @param adminLoginDTO
     */
    String login(AdminLoginDTO adminLoginDTO);

    /**
     * 添加用户
     *
     * @param adminNewDTO
     */
    void addNew(AdminAddNewDTO adminNewDTO);

    /**
     * 根据id删除用户
     *
     * @param id
     */
    void deleteById(Long id);

    /**
     * 根据id修改用户
     * @param id
     */
    void updateById(Long id, AdminUpdateDTO adminUpdateDTO);

    /**
     * 根据id查询用户详情
     *
     * @param id
     */
    AdminStandardVO getStandardById(Long id);

    /**
     * 根据昵称查询用户详情
     * @param nickname
     * @return
     */
    AdminStandardVO getByNickname(String nickname);

    /**
     * 根据id修改是否启用
     *
     * @param id
     */
    void setEnable(Long id);

    /**
     * 根据id修改是否禁用
     *
     * @param id
     */
    void setDisable(Long id);

    /**
     * 根据id修改是否是经理
     *
     * @param id
     */
    void setManager(Long id);

    /**
     * 根据id修改是否是经理
     *
     * @param id
     */
    void setNoManager(Long id);

    /**
     * 查询用户列表
     *
     * @return
     */
    List<AdminListVO> list();

}
